/*给所有的input添加失去焦点事件
1.判断input内的值是否为空
若为空，显示不能为空的错误信息，return结束（不用继续判断）
input值与正则表达式匹配，若正确提示正确信息，若不匹配提示错误信息*/

//给所有的input添加失去焦点事件
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) {
	inputs[i].onblur = inputBlur;
}

//定义input失去焦点事件：判断内容是否为空，是否正确
function inputBlur() {
	//获取当前input的name，value，提示信息
	var name = this.name;
	var value = this.value;
	var tips = this.placeholder;
	//获取显示正确或错误提示信息的div元素
	//根据当前input对象获取div：堂兄弟关系
	//根据当前input对象获取它的父亲--父亲的下一个兄弟--这个兄弟的第一个孩子
	var div = this.parentNode.nextElementSibling.firstChild;
	//去除value两端的空格
	value = value.trim();
	//判断当前input的value值，若为空：显示不能为空的错误信息，return结束（不用继续）；
	if(value == null || value == '') {
		div.innerHTML = "输入框不能为空";
		//错误样式
		div.className = 'error';

	} else {
		//input值与正则表达式匹配，若正确提示正确信息，若不匹配提示错误信息
		//调用函数，根据但却input的name，获得该input的正则表达式和提示信息
		var reg = getReg(name);
		//判断input与正则表达式是否匹配
		if(value.match(reg)) {
			div.innerHTML = "输入正确";
			div.className = 'success'
		} else {
			div.innerHTML = tips;
			//错误样式
			div.className = 'error';
		}
	}
}
///^[\u4e00-\u9fa5]{2,4}$/
//定义函数：input值与正则表达式是否匹配
//参数：name，tips
//返回值，正则表达式，提示信息
function getReg(name) {
	var reg = '';
	switch(name) {
		case 'username':
			//长度4~12，英文大小写字母
			reg = /^[a-zA-Z]{4,12}$/;
			break;
		case 'pwd':
			//长度6~20，大小写字母、数字或下划线
			reg = /^\w{6,20}$/;
			break;
		case 'repwd':
			//请再次输入密码进行确认
			var pwd = document.getElementsByTagName('input')[1].value;
			/*正则表达式表示：字面量&对象
			 var re=new ReExp("\\w");
			 var re =/\w/;*/
			reg = new RegExp('^' + pwd + '$');
			break;
		case 'tel':
			//13、14、15、17、18开头的11位手机号
			reg = /^1[34578]\d{9}$/;
			break;
		case 'email':
			//用户名@域名（域名后缀至少2个字符）
			//第一部分：由字母，数字，下划线，短线‘-’，点号“.”组成
			//第二部分：为一个域名，域名由字母，数字，短线“-”，域名后缀组成
			//而域名后缀至少两位
			reg = /^\w+@+\w+\.+\w{2,}$/;
			break;
		default:
			break;
	}
	return reg;
}